目前我們的環境已經有1台 Proxmox VE 和1台 Debian 了
未來主機數量一多 要使用 IP 來管理會有蠻大的問題
這時可以使用 DNS (Domain Name Service) 來將網址轉換為 IP
這樣只需要記著網址就可以方便管理伺服器了
今天的環境會在 Debian 上透過 bind9 這個套件實作
先透過 apt 來安裝 bind9
apt-get install bind9 -y
安裝好後進到 bind9 的目錄下看看
cd /etc/bind/
ls -al
可以看到有兩種同個前綴的檔案
這次主要會設定這兩個檔案
先打開 named.conf.default-zones 來看看預設設定
vim named.conf.default-zones
應該會看到這些設定檔
我們可以透過設定檔內的設定來大致了解格式、內容等資訊
看完後就離開 移動到 named.conf.local 上開始做自己的設定
這次使用 ironman.test. 當作網域名稱作為設定
vim named.conf.local
zone "ironman.test" {
type master;
file "/etc/bind/db.ironman.test";
}
解釋一下設定檔
zone "ironman.test" {} 這邊是指定這個網域的設定
type master; 這邊是指定 zone 型態, 型態有這些
file 是指定這個 zone 的資料檔案的位置 這邊也可以用相對路徑指定但我習慣使用絕對路徑
這樣子就設定好 zone 的設定了 接下來把資料 key 進去
key 進去之前也先看看 db. 檔案的樣子 打開 db.local 看看
vim /etc/bind/db.local
看起來跟台灣晚上的市容差不多五顏六色
看到這個格式一定是不知道該幹嘛 但其實這個檔案的格式很簡單 先從特殊符號來看
; 是註解, @ 代表的是這個網域的網域名稱(@ = ironman.test) 或是 $ORIGIN 指定的 Domain Name
. 加在網域名稱最後面是代表這是一個完整的網域名稱
以我要設定網域 ironman.test 來說 dns 在 db.檔案裡面會被視為 dns.ironman.test
但是網綠名稱是 goldman.test. 對於 db.檔來說就會是 goldman.test
這個在指定 DNS delegation 比較常會用到
特殊符號大致上就是這樣子 接著來解釋上面圖片看到的綠字
SOA (Start of Authority)
用來指定 Domain 的基本參數使用, TTL, 刷新,過期時間等資訊 通常這邊會使用預設值
還有拿來設定網域的管理員
NS (Name Server)
用來指定 Domain 的 DNS Server 位置
A (Address)
用來指定網域名稱對應的 IP (正解)
PTR (Pointer)
用來指定 IP 對應的網域名稱 (反解)
CNAME
用來指定網域的別名
大致上了解功能後來看看設定檔的格式吧 以上面圖的第12行作為範例
@ IN NS localhost.
dns IN A 192.168.202.174
可以把這個格式分成 4 Part 來看
第一部分就是我們要設定的網域名稱
第二部分 IN 就是類似 @ 的功能 代表在
第三部分是代表這個 DNS 的類型是什麼
第四部份是 Domain Name 對應的值
確認好格式之後開始來設定
先複製 db.empty 來操作
cp db.empty db.ironman.test
vim db.ironman.test
基本上我會設定成這個樣子
指定 Domain 的 NS 到 dns 這台主機上
指定 Domain 為 192.168.202.174
再指定 dns 為 192.168.202.174
這樣子就是最基本的 Domain 設定了
接著繼續設定
pve IN A 192.168.202.172
pve-vm IN A 192.168.202.173
就完成設定了
接著來重啟服務
service bind9 restart
這邊先來安裝用來查找 Domain Name 的套件
apt-get install dnsutils
安裝好後就可以使用了 但這邊來改一下本機的網路 DNS 設定
vim /etc/resolv.conf
nameserver 127.0.0.1
接著來查詢看看
成功!!
如果現在只使用今天架設的 DNS 會發現這個 DNS 只能查到自己設定的東西而已
這時要透過 Forward 傳送 Request 到其他 DNS Server 上查找才行
去打開 named.conf.options 修改一下 forwarders 把他反註解調 設定外部的 DNS 像 1.1.1.1 或 8.8.8.8
再透過 nslookup up 查找 google.com
大成功!